home *** CD-ROM | disk | FTP | other *** search
- //
- // Copyright 1999 Macromedia, Inc. All rights reserved.
- //
- //niceName.js
- //
- //given a full object reference, create a user friendly name
- //
- //--------------------------------------------------------------
- //
- //
- //niceNames(objRefArray,objTypeStr) {
- //nameReduce (objName) {
-
-
- //Converts an array of JS object references to an array of nice names.
- //For example, document.layers['layr1'].document.form1.img1 becomes
- // image "img1" in form "form1" in layer "layr1"
- //Assumes all objects are of type objTypeStr, and the last token is the name
- //Note: I reverse the array of tokens to simplify nesting.
-
- function niceNames(objRefArray,objTypeStr) {
- var i, j, niceRef, tokens;
- var niceNameArray = new Array(objRefArray.length);
- for (i in objRefArray) { //with object reference array
- tokens = getTokens(objRefArray[i],".").reverse(); //split ref into tokens and rev order
- if (tokens.length > 1) {
- niceRef = objTypeStr + ' ' + nameReduce(tokens[0]); //start building str, ie: image "foo"
- if (tokens.length > 2) { //reference includes some nesting...
- if (tokens[1] != "document" && tokens[2] == "document") //inside form, add form reference
- niceRef += ' ' + TYPE_Separator + ' ' + TYPE_Form + ' ' + nameReduce(tokens[1]);
- for (j=1; j<tokens.length-1; j++) if (tokens[j].indexOf("layers[") == 0)
- niceRef += ' ' + TYPE_Separator + ' ' + TYPE_Layer + ' ' + nameReduce(tokens[j]);
- if (tokens[j] != "document") //if top, parent, or window, expect frame
- niceRef += ' ' + TYPE_Separator + ' ' + TYPE_Frame + ' ' + nameReduce(tokens[j-1]);
- }
- } else niceRef = objRefArray[i];
- niceNameArray[i] = niceRef;
- }
- return niceNameArray;
- }
-
-
-
- //Extracts a name or num from array string and quotes if necessary. So
- // myImg => "myImg"
- // layers['foo'] => "foo"
- // embeds[0] => 0
- // myImg[2] => "myImg[2]"
-
- function nameReduce (objName) {
- var retVal, arrayTokens, pos;
-
- retVal = '"' + objName + '"'; //default is object wrapped in quotes
- if ((pos=objName.indexOf("[")) > 0) { //if it's an array
- arrayTokens = getTokens(objName,"[]\"'"); //break up tokens
- if (arrayTokens.length == 2) { //if exactly two tokens
- if ("frames layers forms embeds links anchors all".indexOf(arrayTokens[0]) != -1) { //if legal
- if (arrayTokens[1] == ""+parseInt(arrayTokens[1])) //if a number
- retVal = arrayTokens[1];
- else //else it's a string
- retVal = '"' + arrayTokens[1] + '"';
- } else { //move bracket number outside of quotes
- retVal = '"'+objName.substring(0,pos)+'"'+objName.substring(pos); //image1[0] => "image1"[0]
- }
- }
- }
- return retVal;
- }
-
-
-
-